Multi-module প্রোজেক্ট কি এবং কিভাবে কাজ করে?

Maven Multi-module Projects - ম্যাভেন (Maven) - Java Technologies

302

Maven হল একটি বিল্ড টুল যা Java প্রোজেক্টের ডিপেনডেন্সি ম্যানেজমেন্ট এবং বিল্ড অটোমেশন সরবরাহ করে। Multi-module projects Maven এর একটি শক্তিশালী বৈশিষ্ট্য, যা একাধিক সাব-প্রোজেক্ট বা মডিউল নিয়ে একটি বড় প্রোজেক্ট তৈরি করতে সাহায্য করে। এটি বিশেষভাবে উপকারী যখন আপনি একটি প্রোজেক্টের মধ্যে একাধিক কাজ বা ফিচার ডেভেলপ করছেন এবং এগুলির মধ্যে পুনঃব্যবহারযোগ্য কোড এবং ডিপেনডেন্সি শেয়ার করতে চান।

১. Maven Multi-module প্রোজেক্ট কি?

Maven Multi-module Project হল এমন একটি প্রোজেক্ট যা একাধিক সাব-প্রোজেক্ট বা মডিউল নিয়ে তৈরি। এখানে একটি প্যারেন্ট (parent) প্রোজেক্ট থাকে এবং তার মধ্যে এক বা একাধিক মডিউল থাকে। প্রতিটি মডিউল একটি আলাদা অ্যাপ্লিকেশন বা লাইব্রেরি হতে পারে, এবং এগুলির মধ্যে ডিপেনডেন্সি এবং ফিচার শেয়ার করা হয়।

২. Maven Multi-module Project এর উপকারিতা

  1. Reusability: একাধিক মডিউলের মধ্যে কোড পুনঃব্যবহার সম্ভব হয়। একটি মডিউল তৈরি করলে, অন্য মডিউলে সহজেই ব্যবহার করা যায়।
  2. Centralized Dependency Management: প্যারেন্ট প্রোজেক্টের মধ্যে ডিপেনডেন্সি ম্যানেজমেন্ট কেন্দ্রীভূত করা যায়, যা সকল মডিউলের জন্য একযোগভাবে কাজ করে।
  3. Modularization: বড় এবং জটিল প্রোজেক্টগুলো মডিউল আকারে বিভক্ত করা যায়, যা পরিচালনাকে সহজ করে তোলে।
  4. Build Management: সব মডিউল একসাথে বিল্ড করা যায়, তবে প্রতিটি মডিউল আলাদাভাবে বিল্ডও করা সম্ভব।

৩. Maven Multi-module Project এর কাঠামো

একটি multi-module project সাধারণত একটি প্যারেন্ট প্রোজেক্টের অধীনে একাধিক মডিউল থাকে। নিচে একটি সাধারণ multi-module project এর কাঠামো দেখানো হল:

parent-project/
│
├── pom.xml (Parent POM)
│
├── module-a/
│   └── pom.xml
│
├── module-b/
│   └── pom.xml
│
└── module-c/
    └── pom.xml
  • Parent Project (pom.xml): এটি মূল প্রকল্প এবং এটি সব মডিউলের জন্য সাধারণ কনফিগারেশন ধারণ করে।
  • Module A, B, C: প্রতিটি মডিউল একটি নির্দিষ্ট কাজ বা ফিচার নিয়ে কাজ করে এবং আলাদা পম ফাইল থাকে।

৪. Maven Multi-module Project কিভাবে কাজ করে?

Maven Multi-module প্রোজেক্টে একাধিক মডিউল থাকে, এবং প্রতিটি মডিউল প্যারেন্ট প্রোজেক্টের পম ফাইল দ্বারা পরিচালিত হয়। প্যারেন্ট প্রোজেক্টের pom.xml ফাইলে modules ট্যাগের মাধ্যমে সব মডিউল উল্লেখ করা হয়।

উদাহরণ: Parent POM (pom.xml)

<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.example</groupId>
    <artifactId>parent-project</artifactId>
    <version>1.0-SNAPSHOT</version>
    <packaging>pom</packaging>

    <modules>
        <module>module-a</module>
        <module>module-b</module>
        <module>module-c</module>
    </modules>

    <dependencyManagement>
        <dependencies>
            <!-- Shared dependencies for all modules -->
        </dependencies>
    </dependencyManagement>

    <build>
        <pluginManagement>
            <plugins>
                <!-- Shared build plugins for all modules -->
            </plugins>
        </pluginManagement>
    </build>
</project>

এখানে, modules ট্যাগের মাধ্যমে module-a, module-b, এবং module-c মডিউলগুলো উল্লেখ করা হয়েছে। এছাড়া dependencyManagement এবং pluginManagement এর মাধ্যমে সমস্ত মডিউলের জন্য সাধারণ ডিপেনডেন্সি এবং প্লাগইন কনফিগারেশন প্রদান করা হয়।

উদাহরণ: Module POM (pom.xml for module-a)

<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <parent>
        <groupId>com.example</groupId>
        <artifactId>parent-project</artifactId>
        <version>1.0-SNAPSHOT</version>
        <relativePath>../pom.xml</relativePath> <!-- Parent POM Location -->
    </parent>

    <artifactId>module-a</artifactId>

    <dependencies>
        <!-- Module-specific dependencies -->
    </dependencies>
</project>

এখানে, module-a তার প্যারেন্ট পম ফাইলটি ইঙ্গিত করছে, এবং নিজস্ব artifactId এবং প্রয়োজনীয় dependencies উল্লেখ করেছে।


৫. Maven Multi-module Build Process

Maven multi-module প্রোজেক্টে একাধিক মডিউল থাকা সত্ত্বেও, আপনি একটি single command দিয়ে সমস্ত মডিউল বিল্ড করতে পারেন। এটি Maven reactor ব্যবহারের মাধ্যমে হয়। Reactor মডিউলগুলিকে নির্ধারিত অর্ডারে বিল্ড করতে সক্ষম।

উদাহরণ: বিল্ড কমান্ড

mvn clean install

এই কমান্ডটি parent-project এর পম ফাইল থেকে সমস্ত মডিউল সনাক্ত করবে এবং প্রতিটি মডিউল একে একে বিল্ড করবে।

৬. Maven Multi-module Project এর সুবিধা

  1. Centralized Configuration: প্যারেন্ট পম ফাইলে সমস্ত মডিউলের জন্য সাধারণ কনফিগারেশন এবং ডিপেনডেন্সি একত্রিত রাখা হয়।
  2. Modularization: বড় প্রোজেক্টকে ছোট ছোট মডিউলে ভাগ করা যায়, যা প্রকল্পের ডেভেলপমেন্ট এবং মেইনটেন্যান্স সহজ করে।
  3. Dependency Management: মডিউলের ডিপেনডেন্সি প্যারেন্ট পম ফাইলে কনফিগার করা হয়, যা ডেভেলপমেন্টকে সহজ এবং কেন্দ্রীভূত করে তোলে।
  4. Build Efficiency: একক কমান্ডের মাধ্যমে সমস্ত মডিউল বিল্ড করা যায়, ফলে ডেভেলপমেন্ট সাইকেল দ্রুত হয়।

সারাংশ

Maven Multi-module Project হল একাধিক মডিউল নিয়ে একটি বড় প্রোজেক্ট তৈরি করার প্রক্রিয়া, যেখানে প্রতিটি মডিউল প্যারেন্ট প্রোজেক্টের অধীনে থাকে এবং মডিউলগুলির মধ্যে ডিপেনডেন্সি ও কনফিগারেশন শেয়ার করা হয়। এতে কোড পুনঃব্যবহারযোগ্যতা, কেন্দ্রীভূত কনফিগারেশন এবং একক বিল্ড প্রক্রিয়ার সুবিধা পাওয়া যায়। Maven Reactor ব্যবহার করে আপনি সমস্ত মডিউল একসাথে বিল্ড করতে পারেন, যা বড় প্রোজেক্টে উন্নত ব্যবস্থাপনা এবং দক্ষতা নিয়ে আসে।

Content added By
Promotion

Are you sure to start over?

Loading...